1include <BOSL2/std.scad>
 2use <fonts/Yomogi-Regular.ttf>
 3
 4plane_dimensions = [80,20]; //mm
 5inner_cutout_dimensions = [70,5]; //mm
 6
 7plane_thickness = 3; //mm
 8hinge_thickness = 2.5; //mm
 9hinge_width = 2; //mm
10handle_thickness = 3; //mm
11handle_length = 20; //mm
12handle_angle = 30; //°
13
14clip_ending_dimensions = [1,1]; //mm
15
16handle_text=["御","嶽"];
17handle_text_size = 12.5;
18handle_text_depth = 1.5;
19handle_text_offset = [1.25,3.75];
20
21resolution = 200;
22
23
24module handle(mirror_handle=false){
25translate([hinge_thickness,-hinge_width/2-plane_thickness,0])
26rotate([0,0,handle_angle]) translate([-handle_length+0,0,0]) difference(){cuboid([handle_length,handle_thickness,plane_dimensions.y],anchor=BOTTOM+LEFT+FRONT,$fn=resolution);
27    if (mirror_handle){
28        translate([handle_text_offset.x,0,handle_text_offset.y]) rotate([90,0,0]) mirror([1,0,0]) translate([0,0,-handle_text_depth]) linear_extrude(handle_text_depth) text(handle_text.x,size=handle_text_size,font="Yomogi",halign="right",$fn=resolution);
29        } else {
30    translate([handle_text_offset.x,0,handle_text_offset.y]) rotate([90,0,0]) translate([0,0,-handle_text_depth]) linear_extrude(handle_text_depth) text(handle_text.y,size=handle_text_size,font="Yomogi",$fn=resolution);
31        }
32}
33}
34
35union(){
36translate([0,-hinge_width/2-plane_thickness,0])
37difference(){
38cuboid([plane_dimensions.x,hinge_width+plane_thickness*2,plane_dimensions.y],anchor=BOTTOM+LEFT+FRONT,$fn=resolution);
39translate([hinge_thickness,plane_thickness,0]) cuboid([plane_dimensions.x-hinge_thickness,hinge_width,plane_dimensions.y],anchor=BOTTOM+LEFT+FRONT,$fn=resolution);
40translate([plane_dimensions.x/2-inner_cutout_dimensions.x/2,0,plane_dimensions.y/2-inner_cutout_dimensions.y/2]) cuboid([inner_cutout_dimensions.x,hinge_width+plane_thickness*2,inner_cutout_dimensions.y],anchor=BOTTOM+LEFT+FRONT,$fn=resolution);
41}
42handle();
43mirror([0,1,0])handle(true);
44translate([plane_dimensions.x-clip_ending_dimensions.x,-hinge_width/2,0]) cuboid([clip_ending_dimensions.x,clip_ending_dimensions.y,plane_dimensions.y],anchor=BOTTOM+LEFT+FRONT,$fn=resolution);
45}